export default {
  namespaced: true,
  state: {
    // 用户头像路径数据, 先从本地获取
    userAvatar: uni.getStorageSync('userAvatar') || '',
    // 用户昵称
    nickName: uni.getStorageSync('nickName') || '',
    // 用户 token
    token: uni.getStorageSync('token') || ''
  },
  mutations: {
    // 更新用户头像
    updateUserAvatar(state, params) {
      state.userAvatar = params
      // 保存到本地
      uni.setStorageSync('userAvatar', params)
    },
    // 更新用户昵称
    updateUserName(state, params) {
      state.nickName = params
      uni.setStorageSync('userName', params)
    },
    // 更新用户 token
    updateToken(state, params) {
      state.token = params
      uni.setStorageSync('token', params)
    }
  },
  actions: {
    // 登录功能
    async wxLoginActions(context, payload) {
      // 调用uni.getUserInfo获取加密的用户信息
      const [error, res] = await uni.getUserInfo()
      console.log(res);
      const {encryptedData, rawData, iv, signature} = res 
      // 调用uni.login获取code码
      const [error2, { code }] = await uni.login()
      console.log(code);
      // 根据接口文档需求, 定义变量作为请求参数
      const data = {
        encryptedData,
        rawData,
        iv,
        signature,
        code  
      }
      // 根据以上两个api的返回作为参数发送请求
      // 发送登录请求
      const res2 = await uni.$u.http.post('/users/wxlogin', data)
      // console.log(res2);
      console.log(res2.data.message.token);
      context.commit('updateToken', res2.data.message.token)
    }
  }
}